Stand-alone electronic cash registers including payment card readers and receipt printers have been used for years in stores, retail outlets and service outlets to facilitate the completion of cash, cheque, credit card or debit card transactions for the purchase of goods and/or services. With the advent of sophisticated and inexpensive computing equipment, input devices and secure communication networks, point-of-sale (POS) stations have become an increasingly popular alternative.
POS stations typically include a host device and a plurality of interchangeable peripherals connected to the host device. The host device and peripherals are easily integrated allowing the configuration of POS stations to be modified to meet changing needs. This has been another factor leading to their widespread acceptance. The host device is commonly in the form of a personal computer. The peripherals often include a keyboard, a display screen, a cash drawer, a printing device, a payment card reader and a barcode reader. In some cases, a touch-sensitive display screen is used instead of separate keyboard and display screen peripherals.
As is well known, the host device communicates with the peripherals and executes software to allow product and/or service transactions to be completed. When payment is effected using a debit or credit card, the host device establishes a connection to the appropriate financial institution over an information network so that approval for the transaction may be obtained. Upon completion of any transaction, the host device creates and transmits a print job to the printing device causing the printing device to generate a transaction receipt and a possibly signing receipt, if payment is made using a credit card.
During creation of the print job, the host device creates a string of the character codes representing the characters to be printed and transmits the string to the printing device in a data stream. Depending on the nature of the characters to be printed, each character code in the data stream may be represented by a single data byte if standard (i.e. Latin) characters are to be printed, or as a data byte pair if larger and/or complex (i.e. multilingual) characters are to be printed. The host device also sends not-printable command codes to the printing device in a command stream to control the printer operation. Each command code in the command string is represented by a single data byte.
To improve efficiency, when transmitting data from the host device to the printing device, it is desired to transmit all data in a single stream. If different parts of the data stream have different bit lengths as is the case with double-byte character codes and single-byte command codes, synchronization errors arise if the command codes are simply embedded in the stream, making decoding of the stream impossible.
Techniques to combine characters of different bit lengths into a common data stream have been considered. For example, U.S. Pat. No. 6,400,287 to Ehrman discloses a data structure for converting mixed character sets comprising both single byte and double byte character sets into Unicode data. When a shift-out character code is encountered, the bytes subsequent to the shift-out character are interpreted as double-byte pairs. At the end of the double-byte string, a shift-in character is inserted to indicate that the following eight-bit bytes are to be interpreted as single-byte characters.
U.S. Pat. No. 6,490,051 to Nyguen et al. discloses a printer driver and method for supporting a world-wide single bindery font format, with built in support for double-byte characters. The printer driver compares the printer characterization, including the font resident in the printer, with a Unicode character to be printed in order to print the character using the printer resident font. The amount of data transferred to the printer is reduced by using the resident font stored within the printer to the extent possible. Single-byte characters are distinguished from double-byte characters using an identifier.
U.S. Pat. No. 6,024,289 to Ackley discloses a method and apparatus for encoding and decoding single-byte characters in double-byte character sets of machine readable symbologies. Single-byte characters are removed from a string of double and single-byte characters output by a system operating in a double-byte character mode. The single-byte characters are processed in a separate manner from the remaining double-byte characters.
U.S. Pat. No. 6,498,657 to Kuntz et al. discloses a system for enabling a printer to analyze incoming metadata, which may include formatting data foreign to the printer, and to translate the data into a format usable by the printer. An incoming data analyzer, a data extractor and a report generator all process incoming metadata command templates and, upon receipt of print data and metadata for a print job, translate the data according to the templates into a format suitable for the printer. A convert double-bytes to bytes program receives incoming data encoded in double-bytes and converts the double-byte printable characters into single-byte characters of not-printable commands and printable characters.
U.S. Patent Application Publication No. 2004/0003013 to Coulthard et al. discloses a system for transferring data and storing metadata across a network that provides compatibility between hierarchical and non-hierarchical file systems. Single-byte, double-byte, mutli-byte and Unicode character sets can be converted by first identifying the encoding scheme utilized.
Although the above references disclose methods of combining different length characters in a single data stream, improvements in the processing of print jobs including character and command codes are desired. It is therefore an object of the present invention to provide a novel method of forming a print data stream with embedded commands.